package org.jeecg.modules.miniAppCustomerEndPoint.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 记录用户的交易记录，如如下三种交易类型
 * 1. 推广后，新用户下单，可以向用户钱包中分配 分享拉新拥挤；
 * 2. 可以通过用户微信钱包向 我们的系统钱包中重置，比如充100抵110;
 * 3. 用户可以从钱包中体现到自己的微信钱包，只能体现 佣金部分，不能提前充值部分，因为充值部分有折扣;
 */
@Data
@TableName("jx_user_transactions")
public class JxUserTransactionsDo {

    /**
     * 每一步佣金交易的唯一id
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String Id;

    /**
     * 用户id
     */
    @TableField("user_id")
    private String userId;

    /**
     * 佣金交易记录类型，当前仅支持两种，向用户钱包中转入推广佣金bonus，用户从系统钱包中提现到自己的 微信支付钱包
     * 101: new-user-bonus 拉新推广奖励佣金，
     * 102: user-order-bonus 用户下单后，老用户的提成奖励，
     * 201: withdraw 提现
     */
    @TableField("type")
    private Integer type;

    @TableField("description")
    private String description;

    /**
     * 交易金额，都是正数，bonus表示向用户系统钱包转入佣金； withdraw表示用户从系统钱包转出到 用户微信钱包
     */
    @TableField("value")
    private Integer value;

    /**
     * 佣金交易所关联的订单id，当交易类型时 bonus时，记录时 其他用户的订单id，即其他用户下单，促使了该用户获得推广佣金
     * 若是 withdraw，则对应 从系统钱包转账到 用户微信钱包的 交易记录id
     */
    @TableField("order_id")
    private String orderId;

    /**
     * 交易时间
     */
    @TableField("create_time")
    private Date createTime;
}
